Multi-streaming Solid State Drives (SSDs) allow smart placement of incoming data to minimize the effect of internal garbage collection (GC) and to reduce write amplification. Multi-streaming may be achieved by adding a simple tag (a stream ID) to each of the write commands sent from the host to the SSD. Based on this tag, the SSD may group data into common blocks.
But to take advantage of multi-stream devices, the applications must be aware that the SSD supports multi-streaming, so that the software sources may assign common streams to data with similar properties, such as data lifetime. Making software multi-stream-aware requires modifying the software. But modifying any software carries the risk of making unintended changes to the operation of the software. And given the sheer number of different software products on the market, expecting even a small number of these software products to be modified to support multi-streaming seems an unlikely proposition at best.
A need remains for a way to support multi-streaming without the software requiring modification.